const Sequelize = require('sequelize')
const config = require('../../config').database
const dbUtils = require('./../utils/db-util')


var sequelize = new Sequelize(config.DATABASE, config.USERNAME, config.PASSWORD, {
    host: config.HOST,
    dialect: 'mysql',
    pool: {
        max: 5,
        min: 0,
        idle: 30000
    }
});



    var Tbdevperdata = sequelize.define('tbdevperdata',{
    id: {
        type: Sequelize.CHAR(10),
        primaryKey: true
    },
    did: Sequelize.INTEGER (10),
    power: Sequelize.STRING(11),
    temp: Sequelize.DOUBLE(10),
    humidity: Sequelize.DOUBLE(10),
    lightness: Sequelize.INTEGER(11),
    smoke: Sequelize.INTEGER(11),
    per_id: Sequelize.INTEGER(11),
    per_type: Sequelize.INTEGER(11),
    data: Sequelize.INTEGER(11),
    time: Sequelize.INTEGER(11),
    dev_num: Sequelize.CHAR(255),
    serialport: Sequelize.CHAR(255)

},   {
    // 自定义表名
    // 'freezeTableName': true,
    // 'tableName': 'peis',
    // 是否需要增加createdAt、updatedAt、deletedAt字段
    'timestamps': false,

    // 不需要createdAt字段
    'createdAt': false,
    // 将updatedAt字段改个名
    // 'updatedAt': 'utime'

    // 将deletedAt字段改名
    // 同时需要设置paranoid为true（此种模式下，删除数据时不会进行物理删除，而是设置deletedAt为当前时间
    })

    // function getLocalTime(nS) {  
    //     return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' ');
    // }

    // function PromiseForEach(arr, cb) {
    //   let realResult = []
    //   let result = Promise.resolve()
    //   arr.forEach(function (a, index) {
    //     result = result.then(function () {
    //       return cb(a).then(function (res) {
    //         realResult.push(res);
    //       });
    //     });
    //   });}



    (async ()=>{
        let result = await Tbdevperdata.findAll({
            attributes:['did','power','temp','humidity','lightness', 'smoke','time', ]
        })
        // if ( Array.isArray(result) && result.length > 0 ) {
        //   result = result[0]
        // } else {
        //   result = null
        // }
        console.log(JSON.stringify(result))
        return JSON.stringify(result)


    })()
//     Tbdevperdata.findAll({
//         attributes:['did',['humidity', 'hum'], 'time']
//     })
//     .then(function (peis) {
//         return JSON.stringify(peis)
//     })
//     // .then(function(peis){
//     //     console.log(peis)
//     //     // return Promise.all(times.forEach(function(ele){
//     //     //     return new Date(parseInt(ele) * 1000).toLocaleString().replace(/:\d{1,2}$/,' ');
//     //     //   }))
//     // })
//     .catch(function (err) {
//        console.log(err)
//        return err;
// });


    